Linux 服务器怎么加固
1.设置高风险文件为最小权限,例如passwd,shadown,group,securetty,services,grub.conf
2.使用sudo命令设置命令执行权,和禁止敏感操作权限,例如运维账户
zhangsanALL=
NOPASSWD:ALL,!/bin/bash,!/bin/tcsh,!/bin/csh,!/bin/su,!/bin/passwd,!/bin/gpasswd,!/bin/v
i/etc/sudoers,!/bin/vi/etc/sudoers.d/,!/usr/bin/vim/etc/sudoers,!/usr/bin/vim
/etc/sudoers.d/,!/usr/sbin/visudo,!/usr/bin/sudo-i,!/bin/vi/etc/ssh/,!/bin/vim
/etc/ssh/,!/bin/chmod,!/bin/rm,!/bin/mv
3.检查其他权限过高的文件
find/-typef(-perm-00007)-a-ctime-1|xargs-I{}ls-lh{}
ctime:属性变更
mtime:内容修改
atime:被访问
4.修改不必要的账号登录环境,或者删除,检查/etc/passwd登录环境不为/sbin/nologin的
5.找到uid为0的账户,删除,awk-F:’($3==0){print$1}’/etc/passwd
6.查找是否存在高权限组的账户,检查/etc/group文件
7.设置密码策略,最长使用90天,密码最短8位,提前7天提醒
修改文件login.defs
PASS_MAX_DAYS90最长使用期限
PASS_MIN_DAYS0最短使用期限
PASS_MIN_LEN8密码最小长度
PASS_WARN_AGE7最长期限到期前7天提醒更改密码
8.修改密码策略,最少包含一个小写字母,一个大写字母,一个数字,一个字符,4种符号
中必须满足3种,最小长度8位。,修改文件/etc/pam.d/system-auth
passwordrequisitepam_cracklib.sotry_first_passretry=3dcredit=-1lcredit=-1
ucredit=-1ocredit=-1minclass=3minlen=8
高版本系统可以使用
authconfig–passminlen=8–update密码最短8位
authconfig–enablereqlower–update包含一个小写
authconfig–enablerequpper–update包含一个大写
authconfig–enablereqdigit–update包含一个数字
authconfig–enablereqother–update包含一个字符
在文件/etc/security/pwquality.conf
9.设置强制密码历史/etc/pam.d/system-auth
passwordsufficientpam_unix.sosha512shadownulloktry_first_passuse_authtok
remember=5
10.设置账户锁定策略防止暴力破解
authrequiredpam_tally2.sodeny=6unlock_time=300even_deny_root
root_unlock_time=60
强制解锁账户的命令pam_tally2–userzhangsan–reset
11.设置反码,防止新建对象有不必要的权限
在文件/etc/profile,/etc/csh.login,/etc/csh.cshrc,/etc/bashrc
加入umask027
12.修改限制文件,减缓被DDOS攻击带来的危害。
softcore0
*hardcore0
*hardrss5000
*hardnproc20
这些行的的意思是:“core0”表示禁止创建core文件;“nproc20”把最多进程数限制到20;
“rss5000”表示除了root之外,其他用户都最多只能用5M内存。上面这些都只对登录到系
统中的用户有效。通过上面这些限制,就能更好地控制系统中的用户对进程、core文件和
内存的使用情况。星号“”表示的是所有登录到系统中的用户。
限制用户jerry将最多允许使用40个进程,每个进程最多打开50个文件,在shell中可创
建的最大文件限制为100MB。最多允许两个admin用户同时登陆系统,同事登陆的wheel
组用户不能操作五个。
配置如下:
jerryhardfsize102400
jerryhardnofile50
jerryhardnproc40
adminhardmaxlogins2
@wheelhardmaxlogins5
13.设置更详细的别名,做到日常维护时,更容易发现安全隐患
14.关闭使用su命令切换root账户
authsufficient/lib/security/pam_rootok.so
加入wheel组的用户可以使用su切换root账户
authrequired/lib/security/pam_wheel.sogroup=wheel
15.查询拥有sid的文件,去掉sid位
find/-typef(-perm-04000-o-perm-02000)|xargs-I{}ls-lh{}
chmodugo-s文件
16.为开放目录设置粘滞位。chmodo+txxx
17.设置日志服务器
日志发送方:修改应用服务器日志配置文件
vi/etc/rsyslog.conf
确认关键日志审计是否存在
.info;mail.none;authpriv.none;cron.none/var/log/messages
authpriv./var/log/secure
并添加两行转发日志信息
.info;mail.none;authpriv.none;cron.none@IP地址
authpriv.
重启服务
systemctlrestartrsyslog
日志接收方,修改/etc/rsyslog.conf
开启接收日志功能
$ModLoadimudp
$UDPServerRun514
$templateRemote,“/var/log/%$YEAR%-%$MONTH%-%$DAY%/%fromhost-ip%.log”
远程日志路径
:fromhost-ip,!isequal,“127.0.0.1”?Remote本地日志不存储远程文件
重启服务
systemctlrestartrsyslog
18.设置日志权限
设置日志目录为640权限,设置公共消息日志底层属性为a,/var/log/messages.*,
/etc/shadow,/etc/passwd,/etc/group底层属性为i
一关闭telnet服务
1,修改telnet配置文件
vi/etc/xinetd.d/telnet
2,确认/修改内容为
disable=yes
二.SSH使用白名单允许跳板机访问源
1,修改拒绝策略
vi/etc/hosts.deny
2,加入信息
ALL:ALL
3,修改允许策略
vi/etc/hosts.allow
4,加入信息
sshd:来访者IP地址